package homework03;

/**
 * @Description: TODO
 * @author: shenbing.wang@hand-china
 * @date: 2021年06月09日 15:19
 */

/**
 * 接口
 * 1、通话服务接口(通话时间，手机卡类型)            Code0203CallInterface
 * 2、上网流量接口（上网流量，手机卡类型）          Code0203InternetInterface
 * 抽象类
 * 1、抽象类                                      Code0203Abstract
 * 普通类
 * 1、通话套餐类      Code0203CallPackage         实现抽象类/通话服务接口    抽象类方法未重写
 * 2、上网套餐类      Code0203InternetPackage     实现抽象类/上网服务接口    抽象类方法未重写
 * 3、用户消费类      Code0203Consumption         未实现统计方法
 * 4、手机卡类        Code0203PhoneCard
 * 枚举类
 * 1、枚举类          Code0203Enum
 */
public class Code0203Test {

    public static void main(String[] args) {
        System.out.println("============================注册手机==================================");
        //  订购通话套餐
        Code0203Abstract code0203CallPackage = new Code0203CallPackage(1,0,0);
        //  订购上网套餐
        Code0203Abstract code0203InternetPackage = new Code0203InternetPackage(1,0);
        //  创建消费统计
        Code0203Consumption code0203Consumption = new Code0203Consumption(code0203CallPackage.getQuantity(),code0203InternetPackage.getQuantity(),20);
        //  注册一张手机卡，枚举手机卡类型：大卡
        Code0203PhoneCard phoneCard = new Code0203PhoneCard(Code0203Enum.B.getSize(),"10000","用户名","密码",1000,
                code0203CallPackage.getQuantity(),code0203InternetPackage.getQuantity());
        //  打印手机卡信息
        phoneCard.show(code0203CallPackage.getQuantity(),code0203InternetPackage.getQuantity());

        // 消费
        phoneCard.addCall(120,phoneCard);
        phoneCard.addInternet(20,phoneCard);

        //显示账户余额
        phoneCard.showAccountBalance();

        //再次消费测试
        phoneCard.addCall(120,phoneCard);
        phoneCard.addInternet(20,phoneCard);
        phoneCard.addCall(120,phoneCard);
        phoneCard.addInternet(20,phoneCard);
        phoneCard.showAccountBalance();
    }
}
